/**
 *====================================================
 * 文件名称: LogisticsCompanyService.java
 * 修订记录：
 * No    日期				作者(操作:具体内容)
 * 1.    2015年09月23日	chenxy(创建:创建文件)
 *====================================================
 * 类描述：(说明未实现或其它不应生成javadoc的内容)
 */
package com.yuexunit.finance.member.service;

import java.util.Date;
import java.util.List;

import com.yuexunit.finance.member.entity.LogisticsCompanyEntity;
import com.yuexunit.page.PageCriteria;
import com.yuexunit.page.PageList;

/**
 * @ClassName: LogisticsCompanyService
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @author chenxy
 * @date 2015年09月23日 18:55:28
 */
public interface LogisticsCompanyService {
	/**
	 * 新增物流企业
	 * @param logisticsCompanyEntity 物流企业信息
	 * @return 物流企业ID
	 */
	public Long createLogisticsCompany(LogisticsCompanyEntity logisticsCompanyEntity);

	/**
	 * 修改物流企业信息
	 * @param logisticsCompanyEntity 物流企业信息
	 */
	public void updateLogisticsCompany(LogisticsCompanyEntity logisticsCompanyEntity);

	/**
	 * 假删除物流企业
	 * @param logisticsCompanyId 物流企业ID
	 */
	public void disableLogisticsCompany(Long logisticsCompanyId);

	/**
	 * 查询物流企业详情
	 * @param logisticsCompanyId
	 * @return 物流企业信息
	 */
	public LogisticsCompanyEntity inquireLogisticsCompanyDetail(Long logisticsCompanyId);

	/**
	 * 查询物流企业详情
	 * @param tenantId 租户ID
	 * @return 物流企业信息
	 */
	public LogisticsCompanyEntity inquireTenantLogisticsCompany(Long tenantId);
	
	/**
	 * 查询物流企业详情
	 * @param accountId 账户ID
	 * @return 物流企业信息
	 */
	public LogisticsCompanyEntity inquireTenantLogisticsCompanyByAccountId(Long accountId);
	
	/**
	 * 查询物流企业详情
	 * @param companyName 企业名
	 * @return 物流企业信息
	 */
	public LogisticsCompanyEntity inquireLogisticsCompanyByCompanyName(String companyName);

	/**
	 * 查询物流企业列表
	 * @param companyName 物流企业名称
	 * @param contractor 物流企业联系人
	 * @param contractorTel 物流企业联系人电话
	 * @param page 分页参数
	 * @return 物流企业列表
	 */
	public PageList<LogisticsCompanyEntity> inquireLogisticsCompanyPageList(Date createDateTimeBegin, Date createDateTimeEnd, String companyName, String companyAccount, Integer reportState, Integer effective, PageCriteria page);

	/**
	 *	
	 * @param companyName 物流企业名称
	 * @param page
	 * @return 物流企业列表
	 */
	public PageList<LogisticsCompanyEntity> inquireLogisticsCompanyListByCompanyName(String companyName,PageCriteria page);
	
	/**
	 * @return 物流企业列表
	 */
	public List<LogisticsCompanyEntity> inquireLogisticsCompanyList();
}
